#include <stdio.h>
#include "StdThread.h"
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>

sem_t s1;
sem_t s2;

void* func1(void *arg)
{
    while(1)
    {   
        
        sem_wait(&s1); //等待信号量 s1 的值减小到大于或等于零
        sleep(1);
        printf("A\n");
        sem_post(&s2); //sem_post 函数来增加信号量 s2 的值，释放一个资源
        
    }
}

void * func2(void* arg)
{
    while(1)
    {   
        sem_wait(&s2);
        sleep(1);
        printf("B\n");
        sem_post(&s1);
    }
}



int main()
{
    
    sem_init(&s1,0,1);
    sem_init(&s2,0,1);
    Thread * t1 = ThreadInit(func1,NULL);
    Thread * t2 = ThreadInit(func2,NULL);
    
    //等到线程启动了再发信号
    
    ThreadJoin(t1);
    ThreadJoin(t2);
    ClearThread(t1);
    ClearThread(t2);

   
}